From: Colin Walters Date: Tue, 6 Oct 2009 18:07:40 +0000 (-0400) Subject: Workaround being allocated 0x0 X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~10770 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=d120d03de9b758366c3ae3e040b765f26a12f6e8;p=gnome-shell.git Workaround being allocated 0x0 Because of a chain of bugs we could end up getting allocated 0x0, and this would cause the WellGrid allocation code to be unhappy. See http://bugzilla.openedhand.com/show_bug.cgi?id=1831 Simply treat 0 as "unlimited" i.e. equivalent to -1. https://bugzilla.gnome.org/show_bug.cgi?id=597586 --- diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index 3e9a3bd70..85b6ee61f 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -695,7 +695,10 @@ WellGrid.prototype = { return [0, WELL_DEFAULT_COLUMNS, 0, 0]; let nColumns = 0; let usedWidth = 0; - if (forWidth < 0) { + // Big.Box will allocate us at 0x0 if we are not visible; this is probably a + // Big.Box bug but it can't be fixed because if children are skipped in allocate() + // Clutter gets confused (see http://bugzilla.openedhand.com/show_bug.cgi?id=1831) + if (forWidth <= 0) { nColumns = WELL_DEFAULT_COLUMNS; } else { while (nColumns < WELL_DEFAULT_COLUMNS && @@ -720,7 +723,7 @@ WellGrid.prototype = { let rows = Math.ceil(children.length / nColumns); let itemWidth; - if (forWidth < 0) { + if (forWidth <= 0) { itemWidth = itemNaturalWidth; } else { itemWidth = Math.floor(forWidth / nColumns);